Method and apparatus for distributing information to users

ABSTRACT

A method and apparatus for providing information to a plurality of users based on the relevancy of the information to the users are disclosed. An incoming message is received. Similarity scores are generated indicating similarities of the incoming message to features of a plurality of messages. Relevancy scores are generated for the plurality of users, the relevancy scores indicating relevancies of the incoming message to the plurality of users based on the similarity scores and a plurality of user profiles including information descriptive of the plurality of users&#39; preferences for the features of the plurality of users. Message information derived from the incoming message, the relevancy scores, and the plurality of user profiles is delivered to at least some of the plurality of users.

RELATED APPLICATIONS

[0001] This application is related to the following commonly ownedapplications, some of which disclose subject matter related to thedisclosure of the present application, and which are hereby incorporatedby reference in their entirety:

[0002] U.S. Utility Patent Application entitled “Method and Apparatusfor Regulating Information Flow to Users,” filed concurrently herewithunder Attorney Docket Number A0653/7001; and

[0003] U.S. Utility Patent Application entitled “Method and Apparatusfor Evaluating Relevancy of Messages to Users,” filed concurrentlyherewith under Attorney Docket Number A0653/7002.

BACKGROUND OF THE INVENTION

[0004] A variety of computer-based systems for facilitatingcommunications among users have been developed. For example, electronicmail (email) systems allow users to send messages to one or morespecified recipients. The specified recipients of a message may retrieveand read the message at any time, and may respond to the message orforward it to other users. Email systems typically provide the abilityto create mailing lists to facilitate communication among groups ofusers having common roles or interests. News services (also referred toas “clipping services”) deliver to users selected news articles coveringtopics of interest to the users. Such news services typically selectwhich news articles to deliver to users by comparing words in the newsarticles to keywords provided by the users. Electronic bulletin boardsystems allow groups of users to create electronic bulletin boards, alsoreferred to as “newsgroups,” that typically correspond to a particulartopic. Any user who subscribes to a newsgroup may post messages to thenewsgroup and read messages posted to the newsgroup by other subscribedusers. Electronic “chat rooms” enable users to communicate with eachother in real-time by entering messages that are immediatelycommunicated to and viewable by other users in the same chat room. Thepublic Internet is increasingly being used as a medium for these andother forms of electronic communication.

[0005] One problem associated with such communication systems is that of“information overload.” Users of such systems often find themselvespresented with such a large volume of information (e.g., email messagesor newsgroup postings) that they find it difficult or impossible tomanually examine all of the information in order to identify theinformation that is relevant to them. As a result, users may fail toreceive or read information that is relevant to them and to engage inpotentially fruitful communications. Similarly, users who transmitinformation using such communications systems may fail to reachdesirable recipients because such recipients are unable to separaterelevant from irrelevant messages.

[0006] A variety of automated and semi-automated systems have beendeveloped to help users organize and filter information received usingelectronic communications systems. For example, some systems attempt todeliver messages only to users to whom the messages are relevant. Suchsystems typically allow each user to define a set of preferences thatindicate the user's interests. Such preferences may, for example,include keywords that describe the user's interests. Typically, suchsystems store incoming messages in a database as they are received bythe system. When a certain number of messages have been received, thesystem performs a query on the database using each user's preferences.Each query typically produces scores for the messages in the databaseindicating the relative relevancies of the messages. The system usesthese scores to determine which messages stored in the database aresufficiently relevant to forward to the corresponding user.

[0007] One problem with such conventional systems is that they requirethat multiple messages be received by the system before the relevanciesof the messages can be determined. This requirement delays the deliveryof incoming messages to users of the system. Such systems may thereforenot be appropriate for environments in which communications need to bedelivered quickly, such as enterprise email systems.

[0008] Another problem with such conventional systems is that theirperformance degrades as the number of system users increases. Asdescribed above, such systems perform a database query for each user ofthe system. The number of queries that must be performed thereforeincreases in proportion to the number of system users. Performance ofsuch queries on large databases of messages can impose a significantload on the system and further delay the transmission of communicationsto appropriate recipients.

[0009] A further problem with such conventional systems is that users ofsuch systems have limited control over the number and frequency ofmessages they receive from the system. Defining user preferences usingkeywords primarily serves to define the subject matter in which the useris interested, but does not place any bounds on the number or frequencyof messages that the system will deliver to the user. As a result, usersof such systems may experience “down” times during which they are readyand willing to receive, read, and respond to messages but during whichthey receive few messages or none at all. Similarly, users of suchsystems may be overloaded by a flood of messages that match the users'preferences. Such systems, therefore, fail to address a primary aspectof the problem of information overload.

[0010] Similar problems arise in systems that allow users to define afixed relevancy threshold for incoming messages. Such systems comparethe computed relevancy score of each incoming message to the fixedrelevancy threshold defined by each user to determine whether to forwardthe incoming message to each user. When the system receives a largenumber of messages that exceed a user's relevancy threshold, the userwill be overwhelmed with incoming messages. Similarly, when the systemreceives few messages that exceed a user's relevancy threshold, the userwill receive few messages, even if the user is willing and available toread additional messages. Use of fixed thresholds, therefore, does notallow the frequency with which messages are delivered to users to changein response to the frequency and relevancy of incoming messages or tothe preferences or activity levels of users.

[0011] Some systems allow users to set a fixed limit on the number ofincoming messages to be delivered to them periodically (e.g., each day).The problems associated with such systems are similar to those describedabove. For example, if a large number of highly-relevant messages arereceived by the system in one day, the user will fail to receiverelevant messages. Similarly, if the system receives many low-relevancymessages in one day, the user will receive few messages during the day,even if the user is willing and available to read more messages. Suchsystems, therefore, fail to respond to users' changing preferences andactivity levels of users.

SUMMARY OF THE INVENTION

[0012] A system is provided that receives an incoming message andforwards the message to an appropriate set of users. The system may, forexample, determine the relevancy of the incoming message to a pluralityof users and forward the incoming message to only those users to whomthe message is particularly relevant. Users may interactively controlhow frequently messages are delivered to them in order to avoid beingoverloaded with information. The incoming message may take any of avariety of forms, such as an email message, a newsgroup posting, a chatroom message, or a news article. The message or any information derivedfrom it may be delivered to the appropriate set of users in any of avariety of ways, such as by delivering the information using email, aweb page, a newsgroup posting, or a file transfer.

[0013] In one aspect, a method for providing information to a pluralityof users based on the relevancy of the information to the users isprovided. The method includes steps of receiving an incoming message,generating similarity scores indicating similarities of the incomingmessage to features of a plurality of messages, generating relevancyscores for the plurality of users, the relevancy scores indicatingrelevancies of the incoming message to the plurality of users based onthe similarity scores and a plurality of user profiles includinginformation descriptive of the plurality of users' preferences for thefeatures of the plurality of users, and delivering, to at least some ofthe plurality of users, message information derived from the incomingmessage, the relevancy scores, and the plurality of user profiles. Thestep of generating similarity scores may include steps of querying amessage feature database using the incoming message to develop searchresults, the message feature database including records descriptive ofthe features of the plurality of messages, and generating the relevancyscores based on the search results.

[0014] The plurality of user profiles may include a preference matrixindicating preferences of the plurality of users for the features, andthe step of generating relevancy scores may comprise a step ofgenerating the relevancy scores by performing vector multiplication of avector representing the similarity scores by vectors in the preferencematrix. The relevancy scores may, however, be generated in any manner.The method may further comprise steps of receiving user feedback fromone of the plurality of users and modifying the user's profile in theplurality of user profiles database based on the user feedback. The stepof modifying the user's profile may include a step of receiving anindication from the user that the user has expressed a positivepreference for the message information. The step of modifying the user'sprofile may include a step of receiving an indication from the user thatthe user has expressed a negative preference for the messageinformation.

[0015] The plurality of user profiles may include relevancy thresholdsfor the plurality of users, and the step of delivering messageinformation may include steps of comparing the relevancy scores to therelevancy thresholds and delivering the message information only tothose users whose relevancy scores satisfy the corresponding relevancythresholds. The plurality of user profiles may include a maximum numberof users to whom the message information is to be delivered, and thestep of delivering message information may include a step of deliveringthe message information to no greater than the maximum number of users.The plurality of user profiles may include a minimum number of users towhom the message information is to be delivered, and the step ofdelivering message information may include a step of delivering themessage information to no fewer than the minimum number of users.

[0016] The step of delivering message information may include a step ofsending the message information to the at least some of the plurality ofusers as at least one electronic mail message. The step of deliveringmessage information may include a step of displaying the messageinformation to a particular one of the plurality of users in a messagedisplay. The step of displaying the message information may include astep of: displaying the message information to the particular one of theplurality of users in a message display that indicates the relevancyscore of the incoming message for the particular one of the plurality ofusers in relation to relevancy scores of other messages for theparticular one of the plurality of users. The step of delivering themessage information may include a step of responding to a request from aprocess executing on a client computer for message informationsatisfying specified criteria. The process may be associated with aparticular one of the plurality of users, and the step of displaying themessage information may include a step of responding to a request fromthe process executing on the client computer for message informationcorresponding to a specified number of messages having optimal relevancyscores for the particular one of the plurality of users.

[0017] Another method for providing information to the user based on therelevancy of the information to the user is also provided. The methodincludes steps of receiving an incoming message, generating a relevancyscore for the user, the relevancy score indicating a relevancy of theincoming message to the user, determining whether the relevancy score ofthe incoming message satisfies the relevancy threshold, and deliveringto the user message information derived from the incoming message andadjusting the relevancy threshold when the relevancy score of theincoming message satisfies the relevancy threshold. The method mayfurther include a step of adjusting the relevancy threshold by an amountdetermined by a time-dependent function when the relevancy score of theincoming message does not satisfy the relevancy threshold. The step ofdelivering message information may include a step of adjusting therelevancy threshold by a function of the difference between therelevancy threshold and a maximum relevancy value. The step ofdelivering the message information may include a step of adjusting therelevancy threshold by a function of the difference between therelevancy threshold and an amount determined by a time-dependentfunction of the relevancy threshold.

[0018] Another method for providing information to the user based on therelevancy of the information to the user is also provided. The methodincludes steps of receiving an incoming message, generating a relevancyscore for the user, the relevancy score indicating a relevancy of theincoming message to the user, calculating the relevancy threshold as afunction of time, determining whether the relevancy score of theincoming message satisfies the relevancy threshold, and delivering theincoming message to the user when the relevancy score of the incomingmessage satisfies the relevancy threshold. The step of calculating mayinclude a step of calculating the relevancy threshold as a function oftime that is specified by the user. The step of calculating may includesteps of receiving user volume input from the user, the user volumeinput indicating a desired frequency of message delivery to the user,and calculating the function of time based on the user volume input.

[0019] A computer-readable medium and systems for providing informationto a user based on the relevancy of the information to the user are alsoprovided.

[0020] Other aspects of the invention include the various combinationsof one or more of the foregoing aspects of the invention, as well as thecombinations of one or more of the various embodiments thereof as foundin the following detailed description or as may be derived therefrom.The foregoing aspects of the invention also have correspondingcomputer-implemented processes which are also aspects of the presentinvention. Other embodiments of the present invention may be derived bythose of ordinary skill in the art both from the following detaileddescription of a particular embodiment of the invention and from thedescription and particular embodiment of a system in accordance with theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0021]FIG. 1 is a dataflow diagram of a system for evaluating relevancyof messages to users.

[0022]FIG. 2 is a diagram of an example of a preference matrix forstoring preferences of users in a system for evaluating relevancy ofmessages to the users.

[0023]FIG. 3 is a dataflow diagram of a system for regulating a flow ofinformation to a plurality of users.

[0024]FIG. 4 is a flow chart of a process for regulating a flow ofinformation to a user.

[0025]FIG. 5 is a flow chart of a process for implementing aspects ofthe process shown in FIG. 4.

DETAILED DESCRIPTION

[0026] A system is provided that receives an incoming message andforwards the message to an appropriate set of users. The system may, forexample, determine the relevancy of the incoming message to a pluralityof users and forward the incoming message to only those users to whomthe message is particularly relevant. Users may interactively controlhow frequently messages are delivered to them in order to avoid beingoverloaded with information. The incoming message may take any of avariety of forms, such as an email message, a newsgroup posting, a chatroom message, or a news article. The message or any information derivedfrom it may be delivered to the appropriate set of users in any of avariety of ways, such as by delivering the information using email, aweb page, a newsgroup posting, or a file transfer.

[0027] In one aspect, a relevancy evaluation system is provided thatevaluates the relevancy of incoming messages to each of one or moreusers. The relevancy of each incoming message to each of the users maybe evaluated without waiting for the receipt of subsequent messages. Thesystem also includes a delivery mechanism to deliver incoming messagesto users. The delivery mechanism may, for example, be used to filter outmessages based on their relevancy to each user and to deliver to eachuser only those messages that are particularly relevant to that user.Users may interactively modify the relevancy criteria used by the systemand the manner in which the delivery mechanism determines whether todeliver messages to users.

[0028] For example, referring to FIG. 1, an example of an informationdistribution system 100 used by one or more users is shown. An incomingmessage 102 is received by the system 100. The incoming message 102 may,for example, be an electronic mail (email) message directed to one ofthe system's users. The incoming message is delivered as an input to arelevancy evaluator 126. The relevancy evaluator 114 generates relevancyscores 114 representing relevancies of the incoming message 102 to theusers of the system 100. Each of the relevancy scores 114 indicates arelevancy of the incoming message 102 to a particular user of the system100.

[0029] The relevancy evaluator 126 may, for example, include asimilarity engine 104, similarity scores 108, and a relevancy engine110. The similarity engine 104 may, for example, be a standardtext-based search engine such as Alta Vista, Verity, or a Wide AreaInformation Server (WAIS), which compare words in a search query withwords in an index of documents maintained by the search engine. Thesimilarity engine 104 may, for example, be an engine based on LatentSemantic Analysis, or use any other natural language analysis techniquessuch as word stemming or part-of-speech tagging. A storage mechanism 116stores information related to user preferences and previous incomingmessages received by the system 100. The storage mechanism 116 may, forexample, include a message feature database 106 and user profiles 112.The message feature database 106 may, for example, contain records for aplurality of messages, such as previous incoming messages received bythe system 100. When the similarity engine 104 is a standard searchengine, the message feature database 106 may, for example, be a standardsearch engine index indexing a plurality of messages. The similarityengine 104 queries the message feature database 106 with the incomingmessage 102 to produce similarity scores 108. For example, a similarityscore produced based on a comparison between the incoming message 102and one of the previously-received messages in the message featuredatabase 106 may be a floating point value between S_(Min) and S_(Max)indicating a degree of similarity between the incoming message 102 andthe previously-received message. S_(Min) and S_(Max) may be anyappropriate values, such as 0 and 1 or −1 and +1.

[0030] The similarity scores 108 and the user profiles 112 are deliveredas an input to the relevancy engine 110. The relevancy engine 110generates the relevancy scores 114 using the similarity scores 108 andthe user profiles 112. The user profiles 112 include profiles of theusers of the system 100. The user profiles 112 may include, for example,information descriptive of the users' preferences for at least some ofthe plurality of messages represented in the message feature database106. The relevancy scores 114 may, for example, be floating point valuesranging between R_(Min) and R_(Max) indicating the relevance of theincoming message 102 to the users of the system 100. R_(Min) and R_(Max)may be any appropriate values, such as 0 and 1 or −1 and +1.

[0031] The incoming message 102 and the relevancy scores 114 areprovided to a delivery mechanism 118. An example of the deliverymechanism 120 is described in more detail below with respect to FIG. 3.The delivery mechanism 120 generates message information 120 from therelevancy scores 114 and the incoming message 102 and delivers themessage information 120 to users of the system 100, such as a user 122.As described in more detail below, the message information 120 mayinclude information derived from the incoming message 102 and/orinformation about the relevancy score of the incoming message 102 forthe user 122. The incoming message 102 is also provided to the storagemechanism 116, which stores the incoming message 102 or informationderived therefrom in the message feature database 106.

[0032] The user provides user feedback 124 to the storage mechanism 116and/or the delivery mechanism 118. As described in more detail below,the user feedback 124 may, for example, be used to modify the profile ofthe user 122 in the user profiles 112. The user feedback 124 may also beused to modify the operation of the delivery mechanism 118.

[0033] To generate the relevancy scores 114, the relevancy evaluator 126queries the storage mechanism 116 using the incoming message 102 as thequery to generate the relevancy scores 114 as an output. This differsfrom conventional systems, which typically accumulate incoming messagesover time into a message database, and then periodically use a searchengine to query the message database once for each of a plurality ofuser profiles corresponding to users of the system. One advantage of therelevancy evaluator 126 shown in FIG. 1 is that it may evaluate therelevancy of the single incoming message 102, without waiting to receiveadditional incoming messages. A further advantage of the relevancyevaluator 126 of FIG. 1 is that it queries the storage mechanism 116only once using the incoming message 102, rather than querying a messagedatabase multiple times using a plurality of user profiles. Therelevancy of the incoming message 102 may, therefore, be performed moreefficiently with the relevancy evaluator 126 than with conventionalsystems.

[0034] The message information 120 may be any information derived fromor related to the incoming message 102. For example, the messageinformation 120 may include a summary of the incoming message 102, arelevancy score of the incoming message 102, keywords extracted from theincoming message, a subject line of the incoming message, or the entirecontents of the incoming message 102. The message information 120 mayinclude information related to the incoming message 102, such as thetime of receipt of the incoming message 102, the author of the incomingmessage 102, or the size of the incoming message 102.

[0035] As described in more detail below with respect to FIG. 3, thedelivery mechanism 118 may deliver the message information 120 to theuser 122 in any manner. For example, the message information 120 may bean email message including the contents of the incoming message 102, inwhich case the delivery mechanism 118 may be a combined filter and emailserver that sends the message information 120 to the user 122 usingstandard techniques for delivering email. Alternatively, the deliverymechanism 118 may post the message information 120 to a web pageaccessible to the user 122. The delivery mechanism may also update amessage display using the message information 120. For example, thedelivery mechanism 118 may maintain a message display that displays apredetermined number (e.g., 10) of messages received by the system 100that are most relevant to the user 122. The display mechanism 118 maymaintain such a message display for each user of the system 100. As newincoming messages are received by the system 100, the delivery mechanism118 may update the users' message displays to display the most relevantmessages to the users, ranked in order of relevance. When a user readsor selects a message, the delivery mechanism 118 may remove the messagefrom the user's message display.

[0036] The delivery mechanism 118 may, for example, determine whether todeliver the message information 120 to the user using informationcontained in the incoming message 102, the relevancy scores 114, and theuser profiles 112. For example, the user profiles 112 may includerelevancy thresholds associated with users of the system 100. Thedelivery mechanism 118 may include a relevancy thresholder to comparethe relevancy scores 114 to the relevancy thresholds to determine whichof the relevancy scores 114 satisfy the corresponding relevancythresholds. The delivery mechanism 118 may then only deliver the messageinformation 120 to users whose relevancy scores satisfy their relevancythresholds. Alternatively, the delivery mechanism 118 may, for example,take into account previous messages that have been delivered to a userwhen determining whether the incoming message 102 is relevant to theuser. For example, the delivery mechanism 118 may take into account theamount of time that has passed since an incoming message has beendelivered to the user when determining whether the current incomingmessage 102 is relevant to the user.

[0037] The delivery mechanism 118 may also maintain a minimum andmaximum number of users to whom message information for all incomingmessages should be delivered and ensure that message information foreach incoming message is delivered to at least the minimum number ofusers and to no greater than the maximum number of users of the system100. The delivery mechanism 118 may ensure that the message information120 for each incoming message 102 is delivered to at least the minimumnumber of users in any of a number of ways. For example, if the deliverymechanism 118 determines that the relevancy scores 114 of the incomingmessage 102 satisfy the relevancy thresholds of fewer than the minimumnumber of users, the delivery mechanism 118 may deliver the messageinformation 120 to enough additional users to ensure that the messageinformation 120 is delivered to at least the minimum number of users.The additional users may be selected by, for example, selecting usersfor whom the relevancy score of the incoming message 102 is particularlyhigh (when compared to the user's relevancy threshold). The deliverymechanism 118 may ensure that the message information 120 is deliveredto no greater than the maximum number of users in any of a number ofways. For example, the delivery mechanism 118 may stop delivering themessage information 120 after the message information has been deliveredto the maximum number of users.

[0038] The system 100 shown in FIG. 1 has a number of benefits andadvantages. For example, by thresholding the relevancy score of theincoming message for each user, the users of the system are presentedonly with those incoming messages that are sufficiently relevant tothem. If users of the system 100 typically receive a large number ofmessages, including a large number of messages that are not sufficientlyrelevant to them to warrant attention, filtering of insufficientlyrelevant messages may allow such users to avoid spending a significantamount of time evaluating and/or reading insufficiently relevantmessages.

[0039] Generating a separate relevancy score for the incoming message102 for each user of the system 100 and maintaining separate userprofiles 112 for each user of the system allows the system to behaveaccording to the needs and preferences of individual users. For example,one user might adjust the relevancy threshold in his user profile tofilter out all but the messages that are most relevant to him, whileanother user might adjust her relevancy threshold to filter out only themessages that are least relevant to her. Generation of separaterelevancy scores 114 and maintenance of separate user profiles 112 foreach user of the system 100 makes such customization possible.

[0040] A further advantage of the system 100 is that it may generaterelevancy scores 114 for the incoming message 102 without waiting toreceive subsequent incoming messages. Conventional systems typicallyqueue a number of incoming messages and then generate relevancies of theincoming messages relative to each other. Such queuing increases thedelay between the time that an incoming message is received and the timethat the incoming message can be filtered and otherwise processed by thesystem. The system 100, in contrast, may evaluate the relevancy of asingle incoming message (such as the incoming message 102) and filter orotherwise process the incoming message by itself, before receiving orprocessing any other incoming messages. As a result, results ofevaluating the relevancy of the incoming message 102 may be communicatedimmediately to users of the system 100, such as by displaying theincoming message 102 to those users for whom the incoming message 102 issufficiently relevant. Results of evaluating the relevancy of theincoming message 102 may also be communicated to users of the system 100in other ways, such as by notifying the users of the results by email,facsimile, or telephone.

[0041] An additional advantage of the system 100 is that the userprofiles 112 may be dynamically and interactively modified to influencethe operation of the system 100. For example, as described in moredetail below, the user 122 may interactively provide user feedback 124to modify the user's profile in the user profiles 112 to reflect changesin his or her preferences. Such changes may be performed relativelyquickly and may influence the relevancy evaluations performed by thesystem 100 immediately. In contrast, changes made to profiles of usersin conventional systems typically are not made noticeable to the useruntil the next time the system processes a batch of incoming messages.As described above, such processing may only occur infrequently. As aresult, users of such systems have limited control over the quality andquantity of messages that are delivered to them.

[0042] The elements of FIG. 1 will now be described in more detail. Theincoming message 102 may be any kind of message, document, or data thatmay be broadcast or directed to one or more users. The incoming message102 may, for example, be an electronic mail (email) message directed toone or more specified users. The incoming message 102 may also, forexample, be a newsgroup posting, a message posted to a chat room,information derived from a web page, or information extracted from adatabase or other data store. The incoming message 102 may include anykind of data, such as text, graphics, images, sounds, or any combinationthereof.

[0043] The similarity engine 104 may, for example, be a standard searchengine that compares query text (e.g., the incoming message 102) to adatabase (e.g., the message feature database 106). Such a search enginecompares the query text to records in the database and produces a scorefor each record in the database indicating whether and/or how closelythe query text matches the record. The similarity engine 104 may use anyof a variety of well-known methods for comparing the incoming message102 to the message feature database 106 to produce the similarity scores108. The similarity scores 108 may include scores for fewer than all ofthe records in the similarity engine database 100. For example, thesimilarity scores 108 may include scores only for those records in themessage feature database 106 that match the incoming message 102particularly well or particularly poorly.

[0044] Although, as described above, the message feature database 106may contain records for previous incoming messages received by thesystem 100, the message feature database 106 is not limited to storingprevious incoming messages. Rather, the message feature database 106 mayinclude, for example, records corresponding to any feature of one ormore messages. For example, the message feature database 106 may includeabstracts or summaries of messages, combinations of messages that aresimilar to each other, or keywords derived from messages. The similarityscores 108 indicate the similarity of the incoming message 102 to thefeatures represented in the message feature database 106. The messagesrepresented in the message feature database 106 need not be messagespreviously transmitted using the system 100. Furthermore, the messagesrepresented in the message feature database 106 may be any kind ofdocuments or data. For example, the messages may be compressed messages,documents including keywords describing skills of employees, or employeeresumes.

[0045] Although, as described above, the similarity scores 108 may befloating point values ranging between S_(Min) and S_(Max), indicatinghow well the records in the message feature database 106 match theincoming message 102, any of a variety of other scoring scales may beused. For example, the similarity scores 108 may be boolean values ofeither True or False, indicating whether particular records in themessage feature database 106 match the incoming message 102. Although,as described above, higher similarity scores are more optimal scoresthan lower similarity scores, the similarity scores 108 may be arrangedin any order.

[0046] The user profiles 112 may indicate preferences of the users ofthe system in any manner. For example, the user profiles 112 mayinclude, for one or more users of the system 100, a preference valueindicating a preference of the user for a particular one of thequestions represented in the message feature database 106. Suchpreference values may, for example, be represented as a preferencematrix in which columns correspond to users of the system and rowscorrespond to questions represented in the message feature database 106.Referring to FIG. 2, an example of a preference matrix 200 is shown, inwhich preference values range from P_(Min) =0 to P_(Max)=1. Thepreference matrix 200 includes columns u₀-u₉ corresponding to users ofthe system 100 and rows m₀-m₇ corresponding to previous incomingmessages received by the system 100. The preference value P_(c),_(r)stored in the preference matrix 200 at column c and row r corresponds tothe preference of user u_(c) to message m_(r). For example, thepreference matrix 200 indicates that the preference value correspondingto user u₄ and message m₅ is 0.15.

[0047] The preference value of a user with respect to a particularquestion may correspond to any of a number of characteristics of theuser with respect to that question. For example, the messagesrepresented in the message feature database 106 may be questions thathave been asked of users of the system 100. In such a case, thepreference value of a user for a question may indicate whether the userhas previously responded to the question. For example, the preferencevalue of a user for a question may be P_(Max) if the user has respondedto the question and P_(Min) if the user has not responded to thequestion. Similarly, preference values may indicate degrees to whichusers have correctly answered questions represented in the messagefeature database 106. For example, preference values may be floatingpoint values ranging from P_(Min) to P_(Max), where a preference valueof P_(Max) indicates that a user has answered a question entirelycorrectly and a preference value of P_(Min) indicates that the user hasanswered the question entirely incorrectly. P_(Min) and P_(Max) may beany appropriate values, such as 0 and 1 or −1 and +1. Alternatively,preference values may indicate whether users have accepted or rejectedquestions, such as by using a value of one to indicate acceptance of aquestion and a value of zero to indicate rejection of a question.

[0048] The preference matrix 200 may be stored in a computer-readablemedium in any manner. For example, the preference matrix 200 may berepresented as a table in a database, as a multidimensional array, as anobject according to an object-oriented programming language, a (singly-or doubly-) linked list, a two-dimensional hashing function, a sparseset of lists organized by row, a sparse set of lists organized bycolumn, or as a sparse matrix. The preference matrix 200 may bedistributed among a plurality of data structures or computer-readablemedia. For example, the portion of the preference matrix 200corresponding to a particular user may be stored on the user's clientcomputer to enable the client computer to generate relevancy scores forthe user. Distributing the preference matrix 200 in this way enablesmultiprocessing of incoming messages and thereby increases the speedwith which such messages may be processed.

[0049] Individual users may have multiple profiles in the user profiles112. For example, a user may choose to create multiple profilescorresponding to multiple topics and to store messages that areparticularly relevant to the user based on a particular profile in abind corresponding to that profile. Each profile for a user may beassigned a distinct column in the preference matrix 200 so that columnsin the preference matrix 200 correspond to user profiles rather than tousers.

[0050] The user feedback 124 may take any of a variety of forms. Forexample, the user 122 may indicate in the user feedback 124 that theincoming message 102 is not of interest to the user 122. In response,the system 100 may update the user profiles 112 to indicate that theincoming message 102 is not of interest to the user 122. For example,the system 100 may modify the cell in the preference matrix 200 (FIG. 2)corresponding to the user 122 and the incoming message 102 to indicatethat the user 122 is not interested in the incoming message (such as bychanging the preference value in the cell to P_(Min)). The user feedback124 may indicate an ordering of messages represented in the messagefeature database 106. For example, the user feedback 124 may indicatethat the user 122 prefers a first message over a second message. Inresponse to this feedback, the system 100 may then assign a more optimal(e.g., higher) preference value to the first message than to the secondmessage for that user 122 in the user profiles 112. The system 100 maypresent a graphical display of the preference matrix 200 that isdirectly editable by the user 122, in which case the user feedback 124represents changes made by the user 122 to the preference matrix 200.The techniques described above for updating the user profiles 112 inresponse to receipt of the user feedback 124 are provided merely forpurposes of example and are not limiting; rather, the system 100 mayupdate the user profiles 112 in response to receipt of the user feedback124 in any of a variety of ways.

[0051] Modifications made to the user profiles 112 as a result of userinput are immediately available for use in calculating relevancy scores114 for subsequently-received incoming messages. The separation of theuser profiles 112 from the message feature database 106 allowsmodifications to be made to the user profiles 112 particularly quicklyand without causing noticeable delays to the users of the system 100.Such dynamic and adaptive modification of the user profiles 112 enablesthe system 100 to be responsive to changing needs and preferences of thesystem's users. For example, interactive modification of the userprofiles 112 enables users to control the rate at which incomingmessages are delivered to them, the degree to which incoming messagesare filtered, and the number of messages displayed to them at anyparticular time.

[0052] The relevancy engine 110 may generate the relevancy scores 114 inany of a variety of ways. For example, if the user profiles 112 includea preference matrix, such as the preference matrix 200 shown in FIG. 2,the relevancy engine 110 may calculate the relevancy score of theincoming message 102 for a particular user by performing a vectormultiplication of the incoming message 102 by the column in thepreference matrix 200 corresponding to the user. For example, assumethat the incoming message 102 produces the following vector S ofsimilarity scores 108 (on a scale of S_(Min)=0 to S_(Max)=1): [0.02 0.980.44 0.52 0.37 0.99 0.31 0.89]. Each element S_(i) in the vector Scorresponds to the similarity score of the incoming message 102 withrespect to message m_(i). The relevancy engine 110 may generate arelevancy score of the incoming message 102 for a particular user, suchas the user u₄, by multiplying the vector S by column u₄ in thepreference matrix 200. The result is:(0.02*−0.04)+(0.98*0.24)+(0.44*0.19)+(0.52*−0.25)+(0.37*0.06)+(0.99*0.15)+(0.31*0.19)+(0.89*−0.13)=0.3019.The relevancy engine 110 may, however, generate a relevancy score forthe incoming message 102 in any manner.

[0053] The relevancy engine 110 may normalize the relevancy scores 114before providing them to the delivery mechanism 118. The relevancyengine 110 may, for example, apply a sigmoid function to each relevancyscore R, such as tanh R or 1/(1+e^(−R)), to normalize the relevancyscores 114.

[0054] The system 100 may add a record corresponding to the incomingmessage 102 to the message feature database 106. Because modification ofthe message feature database 106 may be a time-consuming process, thesystem 100 may accumulate incoming messages and periodically (e.g.,nightly) add records corresponding to the accumulated incoming messagesin a batch.

[0055] The storage mechanism 116 may be any kind of mechanism forstoring computer-readable data. For example, the storage mechanism 116may be implemented as a relational database that associates users,messages, and relevancies of the messages to the users. As shown in FIG.1, the storage mechanism 116 includes the message feature database 106and the user profiles 112. Either or both of the message featuredatabase 106 and the user profiles 112 may, however, be separatecomponents of the system 100. For example, the message feature database106 may be a separate component of the system 100 that the similarityengine 104 may directly query using the incoming message 102. Similarly,the user profiles 112 may be a separate component of the system 100 thatthe relevancy engine 110 may use, in combination with the similarityscores 108, to generate the relevancy scores 114.

[0056] The delivery mechanism 118 is now described in more detail. Thedelivery mechanism 118 evaluates characteristics of units of incominginformation (such as the incoming message 102) and determines whether toforward the units of incoming information to particular users based onthe users' expressed preferences and the characteristics of the incominginformation. For example, in a system in which incoming units ofinformation include incoming email messages, the delivery mechanism 118may evaluate the relevancy of an incoming email message to a user of thesystem and determine whether to forward the incoming email message tothe user based on the relevancy of the message to the user, the time atwhich the user last received a message, and the user's expressedpreferences for frequency of message delivery.

[0057] The delivery mechanism 118 thus provides users with control overthe frequency with which incoming information is delivered to them. Toprovide users with incoming information at the rates indicated by theusers' preferences, the delivery mechanism 118 maintains a saliencevalue for each user of the system that specifies a floating relevancythreshold. An incoming unit of information is only delivered to a userif the relevancy of the unit of information to the user exceeds theuser's relevancy threshold. The user's salience decays (decreases) overtime at a rate specified by the user. As the user's salience decreases,so does the corresponding relevancy threshold, and the likelihood thatan incoming unit of information will satisfy the user's relevancythreshold, and thus warrant delivery to the user, increases. When anincoming unit of information satisfies a user's relevancy threshold, theuser's salience is increased, thus decreasing the likelihood that anincoming unit of information received by the system in the near futurewill satisfy the user's relevancy threshold and thus be delivered to theuser. Users may interactively adjust their saliences to increase ordecrease the frequency with which incoming units of information aredelivered to them. This use of salience allows users to interactivelyinfluence the rate at which units of information are delivered to them.

[0058] Referring to FIG. 3, an example of a system 300 for implementingthe delivery mechanism 118 is shown. As described in more detail below,a salience engine 314 plays the role of the delivery mechanism 118 shownin FIG. 1. As described above with respect to FIG. 1, the incomingmessage 102 is delivered as an input to a relevancy evaluator 126. Therelevancy evaluator 126 produces a relevancy score 310 based on theincoming message 102 and a user profile 306 indicating preferences ofthe user 122 for messages previously received by the system 100. Asdescribed above with respect to FIG. 1, the system 100 may also serve aplurality of users, in which case the user profile 306 may be one of theuser profiles 112 (FIG. 1) and the relevancy score 310 may be one of therelevancy scores 114. A clock 308 delivers the current time 312 as aninput to the salience engine 314.

[0059] The salience engine 314 generates message information 120 for theuser 122 based on the relevancy score 310, the current time 312, aprevious receipt time 322 indicating the last time that messageinformation was delivered to the user 122, a salience 316 for the user122, and a volume 325 indicated by the user 122. The salience engine 314determines whether the relevancy score 310 satisfies the user'srelevancy threshold 317 (which the salience engine 314 derives from theuser's salience 316 as described in more detail below). The salienceengine 314 may deliver the message information 120 to the user 122 onlyif the relevancy score 310 satisfies the user's relevancy threshold 317.Alternatively, the salience engine 314 may always deliver the messageinformation 120 to the user 122 and indicate in the message information120 whether the relevancy score 310 satisfies the user's relevancythreshold 317. The salience engine 314 may generate and deliver messageinformation to other users based on the other users' saliences andvolumes.

[0060] The message information 120 may, for example, include theincoming message 102 or any information derived therefrom, such as asubject line, keywords, an abstract, or the current receipt time 312 ofthe incoming message 102. The salience 316, as described in more detailbelow, specifies the adaptive relevancy threshold 317 that is modifiedby the salience engine 314 in response to preferences expressed by theuser 122 and the rate at which incoming messages are received by thesystem 100. The salience engine 314 may, for example, deliver themessage information 120 to the user 122 only if the relevancy score 310satisfies the user's relevancy threshold 317. A decay 318, as describedin more detail below, is derived from the volume 325 specified by theuser 122 and specifies how the salience 316 changes as a function oftime.

[0061] The salience engine 314 may deliver the message information 120to the user 122 in any manner. For example, the salience engine 314 maydeliver the message information 120 to the user 122 as an email message.Alternatively, the salience engine 314 may maintain a message displayfor the user 122 that displays a predetermined number of messages thatare most relevant to the user 122. For example, when the incomingmessage 102 is received by the system 100, the salience engine 314 mayupdate the message display to include the message information 120corresponding to the incoming message 102 only if the relevancy score310 is greater than the relevancy score of a message currently displayedby the message display. In this way, the message display may bedynamically updated to display to the user those messages that are mostrelevant to him or her.

[0062] The user 122 may control the frequency with the salience engine314 delivers message information to the user 122. The user 122 may, forexample, provide user volume input 326 to a volume control 324indicating how frequently the user 122 prefers to receive messages. Thevolume control 324 generates a volume 325 based on the user volume input326. The volume 325 specifies the frequency with which the user 122wishes to receive incoming messages. The volume 325 may range fromV_(Min) to V_(Max). V_(Min) and V_(Max) may be any values, such as 0 and1 or 1 and 10. Values of the volume 325 correspond to preferredfrequencies of message delivery, such as one per hour or ten per day.

[0063] The volume control 324 may include any of a variety of means forreceiving the user volume input 326 from the user 122. For example, thevolume control 324 may provide a graphical user interface that includescontrols for receiving input from the user 122 indicating the volume325. For example, the graphical user interface may include a slidercontrol or a rotating “volume knob” that the user 122 may use toincrease or decrease the volume 325 using a standard input device suchas a keyboard or mouse. The volume control 324 may, however, receive orderive the volume 325 from the user volume input 326 in any manner.

[0064] The salience engine 314 generates the message information 120 forthe incoming message 102 and the user 122 based on the relevancy score310 for the incoming message 102, the current time 312, the user'ssalience 316, and the user's volume 325. The salience engine 314dynamically modifies the salience 316 based on characteristics of theincoming messages received by the system 100 (such as the frequency withwhich incoming messages are being received by the system 100) and theexpressed preferences of the user 122 (as expressed, for example, in theuser profiles 306 and the user volume input 326), as described in moredetail below.

[0065] Referring to FIG. 4, one example of a process that the salienceengine 314 may use to determine whether to deliver the messageinformation 120 to the user 122 and to update the salience 316 is shown.The salience engine 314 calculates the decay 318 (step 402). Asdescribed above, the salience 116 decreases as a function of time. Thedecay 318 indicates how much the salience engine 314 should decrease thesalience 316, based on the time that has passed since messageinformation was last delivered to the user 122 (i.e., since the previousreceipt time 322). The salience engine 314 may decrease the salience 316using any function of time.

[0066] One way in which the salience engine 314 may calculate the decay318 is as follows. Assume for purposes of example that the volume 325specified by the user volume input 326 ranges from V_(Min)=0 toV_(Max)=1. If the volume 325 is equal to V_(Max), then the salienceengine 314 assigns a value of zero to the decay 318. Otherwise, thevolume control 324 assigns a value to the decay 318 using the followingformula:

decay=(1−(log(1−V)/24)^(−(current time−previous time)),

[0067] where “current time” is the current time 312 obtained from, forexample, the clock 308, and “previous time” is the previous messagereceipt time 322 for the user 122. As described in more detail below,the decay 318 is used as a scaling factor to decrease the salience 316by an amount reflecting a decreasing function of time. Using thistechnique for deriving the decay 318 from the user volume input 326, thedecay 318 forces the salience to zero if the volume 325 is equal to one,thus allowing all incoming messages to be passed on to the user 122. Ifthe volume 325 is zero, then the decay 318 forces the salience 316 toone, thus preventing any incoming messages from being forwarded to theuser 122.

[0068] Returning to FIG. 2, the salience engine 314 calculates theuser's relevancy threshold 317 based on the user's salience 316 and theuser's decay 318 (step 404). The salience engine 314 may, for example,calculate the relevancy threshold 317 as the product of the user'ssalience 316 and the user's decay 318. The salience engine 314calculates a percent delta 330 that specifies how the salience 316 is tobe adjusted (i.e., increased or decreased) if the relevancy score 310satisfies the user's relevancy threshold 317 (step 406). The salienceengine 314 may, for example, calculate the percent delta 330 from theuser's salience 316, decay 318, and the relevancy score 310 using thefollowing formula:

percent delta=min((relevancyscore−(salience*decay))/(salience−(salience*decay)),1)

[0069] The salience engine 314 may, however, calculate a value for thepercent delta 330 in any manner. Furthermore, the percent delta 330 maybe partially or entirely specified by the user 122.

[0070] If the relevancy score 310 is greater than or equal to the user'srelevancy threshold 317 (step 408), then the salience engine 314delivers the message information 120 to the user 122 (step 410), adjuststhe salience 316 (step 412), and updates the previous receipt time 322to be equal to the current time 312 (step 414). If the relevancy score310 is less than the user's relevancy threshold 317, the salience engine314 does not deliver the message information 120 to the user 122.

[0071] Referring to FIG. 5, an example of a process for adjusting thesalience 316 after delivering the message information 120 to the user122 (step 412 in FIG. 4) is shown. The process shown in FIG. 5 eitherincreases or decreases the salience 316, depending on the amount of timethat has passed since message information was last delivered to the user122. If message information was delivered to the user 122 relativelyrecently (i.e., if the user receives message information for a secondincoming message relatively quickly after receiving message informationfor a first incoming message), the salience 316 is increased. If arelatively long amount of time has passed since message information waspreviously delivered to the user 122, the user's salience 316 isincreased. In this way, the system 100 balances the user's desire toobtain relevant information against the user's desire to not beoverloaded with information. The process shown in FIG. 5 is provided asan example of a way in which the salience 316 may be adjusted to achievethis balance.

[0072] The salience engine 314 initializes a variable named cutoff to avalue of 0.5 (step 502). The variable cutoff, as described in moredetail below, is used by the salience engine 314 in the process ofdetermining whether to increase or decrease the value of the user'ssalience 316. Use of the variable cutoff is provided merely as anexample of a way in which this determination may be made. Similarly, thevariable cutoff may be initialized to any value, and the initial valueof 0.5 is provided merely as an example.

[0073] If the value of the percent delta 330 is greater than the valueof cutoff (step 504), then the salience engine 314 increases the valueof the salience 316 using the following formula:

salience=salience+(1−salience)*(percent delta−cutoff)

[0074] (step 506). If the value of the percent delta 330 is less than orequal to the value of cutoff (step 504), then the salience engine 314decreases the value of the salience 316 using the following formula:

salience=salience−(salience−salience*decay)*(cutoff−percent)

[0075] (step 508). The process shown in FIG. 5 adjusts the value of thesalience 316 in proportion to the difference between the relevancy score310 and the relevancy threshold 317. The process shown in FIG. 5,however, is shown merely for purposes of example. The salience engine314 may use any process to adjust the value of the salience 316.

[0076] As described above, when the system 100 includes a plurality ofusers, a salience, volume, and previous receipt time may be associatedwith each of the plurality of users. When the incoming message isreceived 102, the salience engine 314 may monitor the number of userswhose relevancy thresholds are satisfied by the corresponding relevancyscore of the incoming message 102. The salience engine 314 may use apriority system to select a subset of this number of users and onlydeliver the message information 120 to this subset of users. Thesalience engine 314 may, for example, perform load balancing among theplurality of users to distribute the message information 120 among theusers to whom the incoming message 102 is particularly relevant in orderto prevent any individual user from being overwhelmed with information.The salience engine 314 may use any priority system to determine towhich users to deliver the message information based on the relevancyscores of the incoming message 102, the users' saliences, volumes, andprevious receipt times, and other information.

[0077] The salience engine 314 provides a number of benefits andadvantages. For example, by thresholding the relevancy score 310, thesalience engine 314 may deliver to the user only those messages that areparticularly relevant to him or her. If users of the system 100typically receive a large number of messages, including a large numberof messages that are not sufficiently relevant to them to warrantattention, filtering of insufficiently relevant messages may allow suchusers to avoid spending a significant amount of time evaluating and/orreading insufficiently relevant messages.

[0078] A further advantage of the salience engine 314 is that it maygenerate the message information 120 for the incoming message 102without waiting to receive subsequent incoming messages. Conventionalsystems typically must queue a number of incoming messages before theycan generate relevancies for the incoming messages. Such queuingincreases the delay between the time that an incoming message isreceived and the time that the incoming message can be filtered andotherwise processed by the system. The system 100, in contrast, mayevaluate the relevancy of a single incoming message (such as theincoming message 102) and deliver or otherwise process the incomingmessage by itself, before receiving or processing any other incomingmessages. As a result, results of evaluating the relevancy of theincoming message 102 may be communicated immediately to users of thesystem 100, such as by delivering the incoming message 102 to thoseusers for whom the incoming message 102 is sufficiently relevant.Results of evaluating the relevancy of the incoming message 102 may alsobe communicated to users of the system 100 in other ways, such as bynotifying the users of the results by email, facsimile, or telephone.

[0079] Another advantage of the salience engine 314 is that it providesthe users of the system 100 with interactive control over the frequencywith which messages and other information are delivered to them. Systemsthat allow users to select a fixed relevancy threshold run the risk ofproviding users with a flood of messages during periods when a largevolume of high-relevancy messages are receiving, and similarly run therisk of providing users with too few messages during periods when mostlylow-relevancy messages are received. By providing users of the system100 with the volume control 324 to control the volume (i.e., frequency)of message delivery, the system 100 balances the desire of the user tolimit the number of messages received with the need to deliverhigh-relevancy messages to the user and the desire to deliverlower-relevancy messages to the user when the user is available to readthem. Because the volume 125 may be interactively modified by the userand the frequency of message delivery is immediately affected bymodification of the volume 325, the user may change the frequency ofmessage delivery, e.g., throughout the day, to suit the user'spreferences and availability.

[0080] A further advantage of the salience engine 314 is that the onlystate information that it needs to maintain for the user 122 is theuser's salience 316, the previous receipt time 122 of a message by theuser 122, and the user's volume 325, regardless of the frequency ofincoming messages being received by the system or the number of incomingmessages previously received by the system. Such state information willtypically require only a small and constant amount of memory to store.Using such state information to regulate the flow of information to theuser 122 therefore requires relatively little memory, regardless of thefrequency of incoming messages or the number of messages previouslyreceived by the user. If the system 100 includes a plurality of users,the system 100 need only maintain the state information described abovefor each of the users. Memory requirements of the system 100 thereforeremain relatively low even when the system has a large number of users.

[0081] A computer system for implementing the system 100 of FIG. 1typically includes at least one main unit connected to both an outputdevice which displays information to a user and an input device whichreceives input from a user. The main unit may include a processorconnected to a memory system via an interconnection mechanism. The inputdevice and output device also are connected to the processor and memorysystem via the interconnection mechanism.

[0082] It should be understood that one or more output devices may beconnected to the computer system. Example output devices include cathoderay tubes (CRT) display, liquid crystal displays (LCD) and other videooutput devices, printers, communication devices such as a modem, storagedevices such as a disk or tape. and audio output. It should also beunderstood that one or more input devices may be connected to thecomputer system. Example input devices include a keyboard, keypad, trackball, mouse, pen and tablet, communication device, and data inputdevices such as audio and video capture devices. It should be understoodthat the invention is not limited to the particular input or outputdevices used in combination with the computer system or to thosedescribed herein.

[0083] The computer system may be a general purpose computer systemwhich is programmable using a computer programming language, such as C,C++, Java, or other language, such as a scripting language or evenassembly language. The computer system may also be specially programmed,special purpose hardware, or an application specific integrated circuit(ASIC). In a general purpose computer system, the processor is typicallya commercially available processor, of which the series x86 and Pentiumseries processors, available from Intel, and similar devices from AMDand Cyrix, the 680×0 series microprocessors available from Motorola, thePowerPC microprocessor from IBM and the Alpha-series processors fromDigital Equipment Corporation, and the MIPS microprocessor from MIPSTechnologies are examples. Many other processors are available. Such amicroprocessor executes a program called an operating system, of whichWindowsNT, Windows 95 or 98, IRIX, UNIX, Linux, DOS, VMS, MacOS and OS8are examples, which controls the execution of other computer programsand provides scheduling, debugging, input/output control, accounting,compilation, storage assignment, data management and memory management,and communication control and related services. The processor andoperating system defines computer platform for which applicationprograms in high-level programming languages are written.

[0084] A memory system typically includes a computer readable andwriteable nonvolatile recording medium, of which a magnetic disk, aflash memory, and tape are examples. The disk may be removable, known asa floppy disk, or permanent, known as a hard drive. A disk has a numberof tracks in which signals are stored, typically in binary form, i.e., aform interpreted as a sequence of one and zeros. Such signals may definean application program to be executed by the microprocessor, orinformation stored on the disk to be processed by the applicationprogram. Typically, in operation, the processor causes data to be readfrom the nonvolatile recording medium into an integrated circuit memoryelement, which is typically a volatile, random access memory such as adynamic random access memory (DRAM) or static memory (SRAM). Theintegrated circuit memory element allows for faster access to theinformation by the processor than does the disk. The processor generallymanipulates the data within the integrated circuit memory and thencopies the data to the disk after processing is completed. A variety ofmechanisms are known for managing data movement between the disk and theintegrated circuit memory element, and the invention is not limitedthereto. It should also be understood that the invention is not limitedto a particular memory system.

[0085] Such a system may be implemented in software or hardware orfirmware, or any combination thereof. The various elements of thesystem, either individually or in combination may be implemented as acomputer program product tangibly embodied in a machine-readable storagedevice for execution by a computer processor. Various steps of theprocess may be performed by a computer processor executing a programtangibly embodied on a computer-readable medium to perform functions byoperating on input and generating output. Computer programming languagessuitable for implementing such a system include procedural programminglanguages, object-oriented programming languages, and combinations ofthe two.

[0086] It should be understood that invention is not limited to aparticular computer platform, particular processor, or particularhigh-level programming language. Additionally, the computer system maybe a multiprocessor computer system or may include multiple computersconnected over a computer network. It should be understood that eachmodule or step shown in the accompanying figures may correspond toseparate modules of a computer program, or may be separate computerprograms. Such modules may be operable on separate computers.

[0087] The foregoing description of a few embodiments is merelyillustrative and not limiting, having been presented by way of exampleonly. Numerous modifications and other embodiments are within the scopeof one of ordinary skill in the art and are contemplated as fallingwithin the scope of the invention.

What is claimed is:
 1. A method for providing information to a pluralityof users based on the relevancy of the information to the users, themethod comprising steps of: (A) receiving an incoming message; (B)generating similarity scores indicating similarities of the incomingmessage to features of a plurality of messages; (C) generating relevancyscores for the plurality of users, the relevancy scores indicatingrelevancies of the incoming message to the plurality of users based onthe similarity scores and a plurality of user profiles includinginformation descriptive of the plurality of users' preferences for thefeatures or the plurality of users; and (D) delivering, to at least someof the plurality of users, message information derived from the incomingmessage, the relevancy scores, and the plurality of user profiles. 2.The method of claim 1, wherein the step (B) comprises steps of: (B)(1)querying a message feature database using the incoming message todevelop search results, the message feature database including recordsdescriptive of the features of the plurality of messages; and (B)(2)generating the relevancy scores based on the search results.
 3. Themethod of claim 1, wherein the plurality of user profiles include apreference matrix indicating preferences of the plurality of users forthe features, and wherein the step (C) comprises a step of: (C)(1)generating the relevancy scores by performing vector multiplication of avector representing the similarity scores by vectors in the preferencematrix.
 4. The method of claim 1, further comprising steps of: (E)receiving user feedback from one of the plurality of users; and (F)modifying the user's profile in the plurality of user profiles databasebased on the user feedback.
 5. The method of claim 4, wherein the step(E) comprises a step of receiving an indication from the user that theuser has expressed a positive preference for the message information. 6.The method of claim 4, wherein the step (E) comprises a step ofreceiving an indication from the user that the user has expressed anegative preference for the message information.
 7. The method of claim1, wherein the plurality of user profiles includes relevancy thresholdsfor the plurality of users, and wherein the step (D) comprises steps of:(D)(1) comparing the relevancy scores to the relevancy thresholds; and(D)(2) delivering the message information only to those users whoserelevancy scores satisfy the corresponding relevancy thresholds.
 8. Themethod of claim 1, wherein the plurality of user profiles includes amaximum number of users to whom the message information is to bedelivered, and wherein the step (D) comprises a step of: (D)(1)delivering the message information to no greater than the maximum numberof users.
 9. The method of claim 1, wherein the plurality of userprofiles includes a minimum number of users to whom the messageinformation is to be delivered, and wherein the step (D) comprises astep of: (D)(1) delivering the message information to no fewer than theminimum number of users.
 10. The method of claim 1, wherein the step (D)comprises a step of sending the message information to the at least someof the plurality of users as at least one electronic mail message. 11.The method of claim 1, wherein the step (D) comprises a step of: (D)(1)displaying the message information to a particular one of the pluralityof users in a message display.
 12. The method of claim 11, wherein thestep (D)(1) comprises a step of: displaying the message information tothe particular one of the plurality of users in a message display thatindicates the relevancy score of the incoming message for the particularone of the plurality of users in relation to relevancy scores of othermessages for the particular one of the plurality of users.
 13. Themethod of claim 1, wherein the step (D) comprises a step of: (D)(1)responding to a request from a process executing on a client computerfor message information satisfying specified criteria.
 14. The method ofclaim 13, wherein the process is associated with a particular one of theplurality of users, and wherein the step (D)(1) comprises a step ofresponding to a request from the process executing on the clientcomputer for message information corresponding to a specified number ofmessages having optimal relevancy scores for the particular one of theplurality of users.
 15. A system for providing information to aplurality of users based on the relevancy of the information to theusers, the system comprising: a message feature database includingrecords descriptive of features of a plurality of messages; a similarityengine having an input to receive an incoming message and an output todeliver similarity scores indicating similarities of the incomingmessage to the features of the plurality of messages; a user profilesdatabase including profiles of the plurality of users, the profilesincluding information descriptive of the plurality of users' preferencesfor the features of the plurality of messages; a relevancy engine havinga first input to receive the similarity scores, a second input toreceive the profiles in the user profiles database, and an output todeliver relevancy scores indicating relevancies of the incoming messageto the plurality of users; and a delivery mechanism having a first inputto receive the incoming message, a second input to receive the relevancyscores, a third input to receive the profiles of the plurality of users,and an output to deliver, to at least some of the plurality of users,message information derived from the incoming message, the relevancyscores, and the plurality of user profiles.
 16. The system of claim 15,wherein the similarity engine is adapted to query a message featuredatabase using the incoming message to develop search results, themessage feature database including records descriptive of the featuresof the plurality of messages, and to generate the relevancy scores basedon the search results.
 17. The system of claim 15, wherein the userprofiles database includes a preference matrix indicating preferences ofthe plurality of users for the features, and wherein the relevancyengine is adapted to generate the relevancy scores by performing vectormultiplication of a vector representing the similarity scores by vectorsin the preference matrix.
 18. The system of claim 15, wherein the userprofiles database is adapted to modify one of the plurality of userprofiles in the user profiles database based on user feedback receivedfrom one of the plurality of users.
 19. The system of claim 18, whereinthe user feedback comprises an indication from the user that the userhas expressed a positive preference for the message information.
 20. Thesystem of claim 18, wherein the user feedback comprises an indicationfrom the user that the user has expressed a negative preference for themessage information.
 21. The system of claim 15, wherein the userprofiles database includes relevancy thresholds for the plurality ofusers, and wherein the delivery mechanism is adpated to compare therelevancy scores to the relevancy thresholds, and to deliver the messageinformation only to those users whose relevancy scores satisfy thecorresponding relevancy thresholds.
 22. The system of claim 15, whereinthe user profiles database includes a maximum number of users to whomthe message information is to be delivered, and wherein the deliverymechanism is adapted to deliver the message information to no greaterthan the maximum number of users.
 23. The system of claim 15, whereinthe user profiles database includes a minimum number of users to whomthe message information is to be delivered, and wherein the deliverymechanism is adapted to deliver the message information to no fewer thanthe minimum number of users.
 24. The system of claim 15, wherein thedelivery mechanism is adapted to send the message information to the atleast some of the plurality of users as at least one electronic mailmessage.
 25. The system of claim 15, wherein the delivery mechanism isadapted to display the message information to a particular one of theplurality of users in a message display.
 26. The system of claim 25,wherein the delivery mechanism is adapted to display the messageinformation to the particular one of the plurality of users in a messagedisplay that indicates the relevancy score of the incoming message forthe particular one of the plurality of users in relation to relevancyscores of other messages for the particular one of the plurality ofusers.
 27. The system of claim 15, wherein the delivery mechanism isadapted to respond to a request from a process executing on a clientcomputer for message information satisfying specified criteria.
 28. Thesystem of claim 27, wherein the process is associated with a particularone of the plurality of users, and wherein the delivery mechanism isadapted to respond to a request from the process executing on the clientcomputer for message information corresponding to a specified number ofmessages having optimal relevancy scores for the particular one of theplurality of users.
 29. A computer-readable medium encoded with aprogram for execution on a computer processor, the program, whenexecuted on the computer processor, performs a method for providinginformation to a plurality of users based on the relevancy of theinformation to the users, the method comprising steps of: (A) receivingan incoming message; (B) generating similarity scores indicatingsimilarities of the incoming message to features of a plurality ofmessages; (C) generating relevancy scores for the plurality of users,the relevancy scores indicating relevancies of the incoming message tothe plurality of users based on the similarity scores and a plurality ofuser profiles including information descriptive of the plurality ofusers' preferences for the features of the plurality of users; and (D)delivering, to at least some of the plurality of users, messageinformation derived from the incoming message, the relevancy scores, andthe plurality of user profiles.
 30. The computer-readable medium ofclaim 29, wherein the step (B) comprises steps of: (B)(1) querying amessage feature database using the incoming message to develop searchresults, the message feature database including records descriptive ofthe features of the plurality of messages; and (B)(2) generating therelevancy scores based on the search results.
 31. The computer-readablemedium of claim 29, wherein the plurality of user profiles include apreference matrix indicating preferences of the plurality of users forthe features, and wherein the step (C) comprises a step of: (C)(1)generating the relevancy scores by performing vector multiplication of avector representing the similarity scores by vectors in the preferencematrix.
 32. The computer-readable medium of claim 29, wherein the methodfurther comprises steps of: (E) receiving user feedback from one of theplurality of users; and (F) modifying the user's profile in theplurality of user profiles database based on the user feedback.
 33. Thecomputer-readable medium of claim 32, wherein the step (E) comprises astep of receiving an indication from the user that the user hasexpressed a positive preference for the message information.
 34. Thecomputer-readable medium of claim 32, wherein the step (E) comprises astep of receiving an indication from the user that the user hasexpressed a negative preference for the message information.
 35. Thecomputer-readable medium of claim 29, wherein the plurality of userprofiles includes relevancy thresholds for the plurality of users, andwherein the step (D) comprises steps of: (D)(1) comparing the relevancyscores to the relevancy thresholds; and (D)(2) delivering the messageinformation only to those users whose relevancy scores satisfy thecorresponding relevancy thresholds.
 36. The computer-readable medium ofclaim 29, wherein the plurality of user profiles includes a maximumnumber of users to whom the message information is to be delivered, andwherein the step (D) comprises a step of: (D)(1) delivering the messageinformation to no greater than the maximum number of users.
 37. Thecomputer-readable medium of claim 29, wherein the plurality of userprofiles includes a minimum number of users to whom the messageinformation is to be delivered, and wherein the step (D) comprises astep of: (D)(1) delivering the message information to no fewer than theminimum number of users.
 38. The computer-readable medium of claim 29,wherein the step (D) comprises a step of sending the message informationto the at least some of the plurality of users as at least oneelectronic mail message.
 39. The computer-readable medium of claim 29,wherein the step (D) comprises a step of: (D)(1) displaying the messageinformation to a particular one of the plurality of users in a messagedisplay.
 40. The computer-readable medium of claim 39, wherein the step(D)(1) comprises a step of: displaying the message information to theparticular one of the plurality of users in a message display thatindicates the relevancy score of the incoming message for the particularone of the plurality of users in relation to relevancy scores of othermessages for the particular one of the plurality of users.
 41. Thecomputer-readable medium of claim 29, wherein the step (D) comprises astep of: (D)(1) responding to a request from a process executing on aclient computer for message information satisfying specified criteria.42. The computer-readable medium of claim 41, wherein the process isassociated with a particular one of the plurality of users, and whereinthe step (D)(1) comprises a step of responding to a request from theprocess executing on the client computer for message informationcorresponding to a specified number of messages having optimal relevancyscores for the particular one of the plurality of users.
 43. A systemfor providing information to a plurality of users based on the relevancyof the information to the users, the system comprising: means forreceiving an incoming message; means for generating similarity scoresindicating similarities of the incoming message to features of aplurality of messages; means for generating relevancy scores for theplurality of users, the relevancy scores indicating relevancies of theincoming message to the plurality of users based on the similarityscores and a plurality of user profiles including informationdescriptive of the plurality of users' preferences for the features ofthe plurality of users; and means for delivering, to at least some ofthe plurality of users, message information derived from the incomingmessage, the relevancy scores, and the plurality of user profiles. 44.The system of claim 43, wherein the means for generating similarityscores comprises: means for querying a message feature database usingthe incoming message to develop search results, the message featuredatabase including records descriptive of the features of the pluralityof messages; and means for generating the relevancy scores based on thesearch results.
 45. The system of claim 43, wherein the plurality ofuser profiles include a preference matrix indicating preferences of theplurality of users for the features, and wherein the means forgenerating relevancy scores comprises: means for generating therelevancy scores by performing vector multiplication of a vectorrepresenting the similarity scores by vectors in the preference matrix.46. The system of claim 43, further comprising: means for receiving userfeedback from one of the plurality of users; and means for modifying theuser's profile in the plurality of user profiles database based on theuser feedback.
 47. The system of claim 46, wherein the means forreceiving user feedback comprises means for receiving an indication fromthe user that the user has expressed a positive preference for themessage information.
 48. The system of claim 46, wherein the means forreceiving user feedback comprises means for receiving an indication fromthe user that the user has expressed a negative preference for themessage information.
 49. The system of claim 43, wherein the pluralityof user profiles includes relevancy thresholds for the plurality ofusers, and wherein the means for delivering message informationcomprises means for comparing the relevancy scores to the relevancythresholds, and means for delivering the message information only tothose users whose relevancy scores satisfy the corresponding relevancythresholds.
 50. The system of claim 43, wherein the plurality of userprofiles includes a maximum number of users to whom the messageinformation is to be delivered, and wherein the step (D) comprises meansfor delivering the message information to no greater than the maximumnumber of users.
 51. The system of claim 43, wherein the plurality ofuser profiles includes a minimum number of users to whom the messageinformation is to be delivered, and wherein the means for deliveringmessage information comprises means for delivering the messageinformation to no fewer than the minimum number of users.
 52. The systemof claim 43, wherein the means for delivering message informationcomprises means for sending the message information to the at least someof the plurality of users as at least one electronic mail message. 53.The system of claim 43, wherein the means for delivering messageinformation comprises means for displaying the message information to aparticular one of the plurality of users in a message display.
 54. Thesystem of claim 53, wherein the means for displaying the messageinformation comprises means for displaying the message information tothe particular one of the plurality of users in a message display thatindicates the relevancy score of the incoming message for the particularone of the plurality of users in relation to relevancy scores of othermessages for the particular one of the plurality of users.
 55. Thesystem of claim 43, wherein the means for delivering message informationcomprises means for responding to a request from a process executing ona client computer for message information satisfying specified criteria.56. The system of claim 55, wherein the process is associated with aparticular one of the plurality of users, and wherein the means forresponding comprises means for responding to a request from the processexecuting on the client computer for message information correspondingto a specified number of messages having optimal relevancy scores forthe particular one of the plurality of users.
 57. In a system includinga relevancy threshold for a user, a method for providing information tothe user based on the relevancy of the information to the user, themethod comprising steps of: (A) receiving an incoming message; (B)generating a relevancy score for the user, the relevancy scoreindicating a relevancy of the incoming message to the user; (C)determining whether the relevancy score of the incoming messagesatisfies the relevancy threshold; and (D) delivering to the usermessage information derived from the incoming message and adjusting therelevancy threshold when the relevancy score of the incoming messagesatisfies the relevancy threshold.
 58. The method of claim 57, furthercomprising a step of: (E) adjusting the relevancy threshold by an amountdetermined by a time-dependent function when the relevancy score of theincoming message does not satisfy the relevancy threshold.
 59. Themethod of claim 57, wherein the step (D) comprises a step of: (D)(1)adjusting the relevancy threshold by a function of the differencebetween the relevancy threshold and a maximum relevancy value.
 60. Themethod of claim 57, wherein the step (D) comprises a step of: (D)(1)adjusting the relevancy threshold by a function of the differencebetween the relevancy threshold and an amount determined by atime-dependent function of the relevancy threshold.
 61. Acomputer-readable medium encoded with a computer program for executionon a computer processor in a computer system including a relevancythreshold for a user, the program, when executed on the computerprocessor, performs a method for providing information to the user basedon the relevancy of the information to the user, the method comprisingsteps of: (A) receiving an incoming message; (B) generating a relevancyscore for the user, the relevancy score indicating a relevancy of theincoming message to the user; (C) determining whether the relevancyscore of the incoming message satisfies the relevancy threshold; and (D)delivering to the user message information derived from the incomingmessage and adjusting the relevancy threshold when the relevancy scoreof the incoming message satisfies the relevancy threshold.
 62. Thecomputer-readable medium of claim 61, wherein the method furthercomprising a step of: (E) adjusting the relevancy threshold by an amountdetermined by a time-dependent function when the relevancy score of theincoming message does not satisfy the relevancy threshold.
 63. Thecomputer-readable medium of claim 61, wherein the step (D) comprises astep of: (D)(1) adjusting the relevancy threshold by a function of thedifference between the relevancy threshold and a maximum relevancyvalue.
 64. The computer-readable medium of claim 61, wherein the step(D) comprises a step of: (D)(1) adjusting the relevancy threshold by afunction of the difference between the relevancy threshold and an amountdetermined by a time-dependent function of the relevancy threshold. 65.A system for providing information to the user based on the relevancy ofthe information to the user, the system comprising: means for receivingan incoming message; means for generating a relevancy score for theuser, the relevancy score indicating a relevancy of the incoming messageto the user; means for determining whether the relevancy score of theincoming message satisfies the a relevancy threshold for the user; andmeans for delivering to the user message information derived from theincoming message and adjusting the relevancy threshold when therelevancy score of the incoming message satisfies the relevancythreshold.
 66. The system of claim 65, further comprising a step of:means for adjusting the relevancy threshold by an amount determined by atime-dependent function when the relevancy score of the incoming messagedoes not satisfy the relevancy threshold.
 67. The system of claim 65,wherein the means for delivering comprises: means for adjusting therelevancy threshold by a function of the difference between therelevancy threshold and a maximum relevancy value.
 68. The system ofclaim 65, wherein the means for delivering comprises: means foradjusting the relevancy threshold by a function of the differencebetween the relevancy threshold and an amount determined by atime-dependent function of the relevancy threshold.
 69. In a systemincluding a relevancy threshold for a user, a method for providinginformation to the user based on the relevancy of the information to theuser, the method comprising steps of: (A) receiving an incoming message;(B) generating a relevancy score for the user, the relevancy scoreindicating a relevancy of the incoming message to the user; (C)calculating the relevancy threshold as a function of time; (D)determining whether the relevancy score of the incoming messagesatisfies the relevancy threshold; and (E) delivering the incomingmessage to the user when the relevancy score of the incoming messagesatisfies the relevancy threshold.
 70. The method of claim 69, whereinthe step (C) comprises a step of: (C)(1) calculating the relevancythreshold as a function of time that is specified by the user.
 71. Themethod of claim 70, wherein the step (C)(1) comprises steps of:receiving user volume input from the user, the user volume inputindicating a desired frequency of message delivery to the user; andcalculating the function of time based on the user volume input.
 72. Acomputer-readable medium encoded with a computer program for executionon a computer processor in a system including a relevancy threshold fora user, the program, when executed on the computer processor, performs amethod for providing information to the user based on the relevancy ofthe information to the user, the method comprising steps of: (A)receiving an incoming message; (B) generating a relevancy score for theuser, the relevancy score indicating a relevancy of the incoming messageto the user; (C) calculating the relevancy threshold as a function oftime; (D) determining whether the relevancy score of the incomingmessage satisfies the relevancy threshold; and (E) delivering theincoming message to the user when the relevancy score of the incomingmessage satisfies the relevancy threshold.
 73. The computer-readablemedium of claim 72, wherein the step (C) comprises a step of: (C)(1)calculating the relevancy threshold as a function of time that isspecified by the user.
 74. The computer-readable medium of claim 73,wherein the step (C)(1) comprises steps of: receiving user volume inputfrom the user, the user volume input indicating a desired frequency ofmessage delivery to the user; and calculating the function of time basedon the user volume input.
 75. A system for providing information to theuser based on the relevancy of the information to the user, the systemcomprising: means for receiving an incoming message; means forgenerating a relevancy score for the user, the relevancy scoreindicating a relevancy of the incoming message to the user; means forcalculating the relevancy threshold as a function of time; means fordetermining whether the relevancy score of the incoming messagesatisfies a relevancy threshold for the user; and means for deliveringthe incoming message to the user when the relevancy score of theincoming message satisfies the relevancy threshold.
 76. The system ofclaim 75, wherein the means for calculating comprises: means forcalculating the relevancy threshold as a function of time that isspecified by the user.
 77. The system of claim 76, wherein the means forcalculating comprises: means for receiving user volume input from theuser, the user volume input indicating a desired frequency of messagedelivery to the user; and means for calculating the function of timebased on the user volume input.
 78. In a system including a relevancythreshold for a user, a method for providing information to the userbased on the relevancy of the information to the user, the methodcomprising steps of: (A) receiving a plurality of incoming messages; (B)generating relevancy scores for the plurality of messages, the relevancyscores indicating relevancies of the plurality of incoming messages tothe user; and (C) delivering to the user message information derivedfrom at least some of the incoming messages having relevancy scoressatisfying the relevancy threshold at a rate specified by the user. 79.The method of claim 78, wherein the step (C) comprises steps of: (C)(1)calculating the relevancy threshold as a function of time; (C)(2)determining whether the relevancy scores of the incoming messagessatisfy the relevancy threshold; (C)(3) delivering to the user messageinformation derived from those incoming messages whose relevancy scoressatisfy the relevancy threshold; and (C)(4) adjusting the relevancythreshold when it is determined in the step (C)(2) that at least one ofthe relevancy scores satisfies the relevancy threshold.
 80. The methodof claim 79, wherein the step (C)(1) comprises a step of: (C)(1)(a)calculating the relevancy threshold as a function of time that isspecified by the user.
 81. The method of claim 80, wherein the step(C)(1)(a) comprises steps of: receiving user volume input from the user,the user volume input indicating a desired frequency of message deliveryto the user; and calculating the function of time based on the uservolume input.
 82. The method of claim 79, wherein the step (C)(4)comprises a step of: adjusting the relevancy threshold by a function ofthe difference between the relevancy threshold and a maximum relevancyvalue.
 83. The method of claim 79, wherein the step (C)(4) comprises astep of: adjusting the relevancy threshold by an amount specified by theuser.
 84. A computer-readable medium encoded with a computer program forexecution on a computer processor in a system including a relevancythreshold for a user, the program, when executed on the computerprocessor, performs a method for providing information to the user basedon the relevancy of the information to the user, the method comprisingsteps of: (A) receiving a plurality of incoming messages; (B) generatingrelevancy scores for the plurality of messages, the relevancy scoresindicating relevancies of the plurality of incoming messages to theuser; and (C) delivering to the user message information derived from atleast some of the incoming messages having relevancy scores satisfyingthe relevancy threshold at a rate specified by the user.
 85. Thecomputer-readable medium of claim 84, wherein the step (C) comprisessteps of: (C)(1) calculating the relevancy threshold as a function oftime; (C)(2) determining whether the relevancy scores of the incomingmessages satisfy the relevancy threshold; (C)(3) delivering to the usermessage information derived from those incoming messages whose relevancyscores satisfy the relevancy threshold; and (C)(4) adjusting therelevancy threshold when it is determined in the step (C)(2) that atleast one of the relevancy scores satisfies the relevancy threshold. 86.The computer-readable medium of claim 85, wherein the step (C)(1)comprises a step of: (C)(1)(a) calculating the relevancy threshold as afunction of time that is specified by the user.
 87. Thecomputer-readable medium of claim 86, wherein the step (C)(1)(a)comprises steps of: receiving user volume input from the user, the uservolume input indicating a desired frequency of message delivery to theuser; and calculating the function of time based on the user volumeinput.
 88. The computer-readable medium of claim 84, wherein the step(C)(4) comprises a step of: adjusting the relevancy threshold by afunction of the difference between the relevancy threshold and a maximumrelevancy value.
 89. The computer-readable medium of claim 84, whereinthe step (C)(4) comprises a step of: adjusting the relevancy thresholdby an amount specified by the user.
 90. A system for providinginformation to the user based on the relevancy of the information to theuser, the system comprising: means for receiving a plurality of incomingmessages; means for generating relevancy scores for the plurality ofmessages, the relevancy scores indicating relevancies of the pluralityof incoming messages to the user; and means for delivering to the usermessage information derived from at least some of the incoming messageshaving relevancy scores satisfying the relevancy threshold at a ratespecified by the user.
 91. The system of claim 90, wherein the means fordelivering comprises: means for calculating the relevancy threshold as afunction of time; means for determining whether the relevancy scores ofthe incoming messages satisfy the relevancy threshold; means fordelivering to the user message information derived from those incomingmessages whose relevancy scores satisfy the relevancy threshold; andmeans for adjusting the relevancy threshold when it is determined in thestep (C)(2) that at least one of the relevancy scores satisfies therelevancy threshold.
 92. The system of claim 91, wherein the means forcalculating comprises: means for calculating the relevancy threshold asa function of time that is specified by the user.
 93. The system ofclaim 92, wherein the means for calculating comprises: means forreceiving user volume input from the user, the user volume inputindicating a desired frequency of message delivery to the user; andmeans for calculating the function of time based on the user volumeinput.
 94. The system of claim 91, wherein the means for adjustingcomprises: means for adjusting the relevancy threshold by a function ofthe difference between the relevancy threshold and a maximum relevancyvalue.
 95. The system of claim 91, wherein the means for adjustingcomprises: means for adjusting the relevancy threshold by an amountspecified by the user.
 96. A system for providing information to a userbased on the relevancy of the information to the user, the systemcomprising: a user profiles database including a relevancy threshold forthe user; a relevancy engine having an output to deliver a relevancyscore indicating a relevancy of an incoming message to the user; adelivery mechanism having a first input to receive the incoming message,a second input to receive the relevancy score, and an output to deliverto the user message information derived from the incoming message and toadjust the relevancy threshold when the relevancy score of the incomingmessage satisfies the relevancy threshold.
 97. The system of claim 96,wherein the delivery mechanism is adapted to adjust the relevancythreshold by an amount determined by a time-dependent function when therelevancy score of the incoming message does not satisfy the relevancythreshold.
 98. The system of claim 96, wherein the salience engine isadapted to adjust the relevancy threshold by a function of thedifference between the relevancy threshold and a maximum relevancyvalue.
 99. The system of claim 96, wherein the delivery mechanism isadapted to adjust the relevancy threshold by a function of thedifference between the relevancy threshold and an amount determined by atime-dependent function of the relevancy threshold.
 100. A system forproviding information to a user based on the relevancy of theinformation to the user, the system comprising: a user profiles databaseincluding a relevancy threshold for the user; a relevancy engine havingan output to deliver a relevancy score indicating a relevancy of anincoming message to the user; and a delivery mechanism to calculate therelevancy threshold as a function of time, determine whether therelevancy score of the incoming message satisfies the relevancythreshold, and deliver the incoming message to the user when therelevancy score of the incoming message satisfies the relevancythreshold.
 101. The system of claim 100, wherein the delivery mechanismis adapted to calculate the relevancy threshold as a function of timethat is specified by the user.
 102. The system of claim 101, wherein thedelivery mechanism is adapted to receive user volume input from theuser, the user volume input indicating a desired frequency of messagedelivery to the user, and to calculate the function of time based on theuser volume input.
 103. A system for providing information to a userbased on the relevancy of the information to the user, the systemcomprising: a user profiles database including a relevancy threshold forthe user; a relevancy engine having an output to deliver relevancyscores for a plurality of messages, the relevancy scores indicatingrelevancies of a plurality of incoming messages to the user; and adelivery mechanism to deliver to the user message information derivedfrom at least some of the incoming messages having relevancy scoressatisfying the relevancy threshold at a rate specified by the user. 104.The system of claim 103, wherein the delivery mechanism is adapted tocalculate the relevancy threshold as a function of time, determinewhether the relevancy scores of the incoming messages satisfy therelevancy threshold, deliver to the user message information derivedfrom those incoming messages whose relevancy scores satisfy therelevancy threshold, and adjust the relevancy threshold when it isdetermined that at least one of the relevancy scores satisfies therelevancy threshold.
 105. The system of claim 104, wherein the deliverymechanism is adapted to calculate the relevancy threshold as a functionof time that is specified by the user.
 106. The system of claim 105,wherein the delivery mechanism is adapted to receive user volume inputfrom the user, the user volume input indicating a desired frequency ofmessage delivery to the user, and calculate the function of time basedon the user volume input.
 107. The system of claim 104, wherein thedelivery mechanism is adapted to adjust the relevancy threshold by afunction of the difference between the relevancy threshold and a maximumrelevancy value.
 108. The system of claim 104, wherein the deliverymechanism is adapted to adjust the relevancy threshold by an amountspecified by the user.